package com.szzz.gateway.route;


import org.springframework.cloud.gateway.route.RouteDefinition;
import reactor.core.publisher.Flux;

import java.util.List;

/**
 * 动态路由 Service
 *
 * @author ZhangYin
 */
public interface DynamicRouting {

    /**
     * 添加路由
     * @param routeDefinition 路由元信息
     */
    void add(RouteDefinition routeDefinition);

    /**
     * 删除路由
     * @param routeDefinition 路由元信息
     */
    void delete(RouteDefinition routeDefinition);

    /**
     * 全量刷新路由
     * @param routes 路由 Flux
     */
    void refresh(Flux<RouteDefinition> routes);

    /**
     * 查询所有路由
     * @return 路由列表
     */
    Flux<RouteDefinition> list();



}
